package com.giCompiler.business;

import java.util.ArrayList;
import java.util.List;

import com.giCompiler.bean.CodigoFonte;
import com.giCompiler.bean.Pacote;
import com.giCompiler.dao.CodigoFonteDao;
import com.giCompiler.dao.PacoteDao;

public class ExcluirClasseBusiness {
	public void excluirClasseBusiness(int idClasse, int idProjeto){
		
		CodigoFonte cf = new CodigoFonte();
		Pacote pacote = new Pacote();
		int idPacoteDefault;
		
		cf.setIdCodigoFonte(idClasse);
		
		new CodigoFonteDao().excluir(cf);
		
		if(verificarPacoteDefault(idProjeto)){
			idPacoteDefault = pegarIdPacoteDefault(idProjeto);
			
			if(idPacoteDefault != -1){
				pacote.setIdPacote(idPacoteDefault);
				new PacoteDao().excluir(pacote);
			}			
		}
		
	}
	
	//Verifica se o pacote default possui alguma classe
	public boolean verificarPacoteDefault(int idProjeto){
		
		List<CodigoFonte> cfs = new ArrayList<CodigoFonte>();
		PacoteDao pacoteDao = new PacoteDao();
		
		cfs = pacoteDao.pegarClassesPacoteDefault(idProjeto);
		
		if(cfs.size() == 0)
			return true; //Nao tem nenhuma classe
		else
			return false;
		
	}
	
	public int pegarIdPacoteDefault(int idProjeto){
		
		List<Pacote> pacotes = new ArrayList<Pacote>();
		PacoteDao pacoteDao = new PacoteDao();
		
		pacotes = pacoteDao.pegarPacoteDefault(idProjeto);
		
		if(pacotes.size() != 0)
			return pacotes.get(0).getIdPacote();
		else 
			return -1;
		
	}
}
